/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package hr.fer.zpr.nmbp.project2.model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.*;

@Entity
@Table(name="BOLNICA"
    ,schema="PUBLIC"
    ,catalog="EBOLNICA"
)
public class Bolnica implements Serializable {
    
    private String sifra;   //primarni ključ, umjetno generiran
    private String naziv;
    private String adresa;
    
    private List<Lijecnik> lijecnici = new ArrayList<Lijecnik>();

    public Bolnica() {
    }
    public Bolnica(String sifra) {
        this.sifra = sifra;
    }
    public Bolnica(String sifra, String naziv, String adresa, List lijecnici) {
       this.sifra = sifra;
       this.naziv = naziv;
       this.adresa = adresa;
       this.lijecnici = lijecnici;
    }
    
    @Column(name="ADRESA")
    public String getAdresa() {
        return adresa;
    }

    public void setAdresa(String adresa) {
        this.adresa = adresa;
    }

    @Column(name="NAZIV")
    public String getNaziv() {
        return naziv;
    }

    public void setNaziv(String naziv) {
        this.naziv = naziv;
    }

    @Id
    @Column(name="SIFRA", unique=true, nullable=false)
    public String getSifra() {
        return sifra;
    }

    public void setSifra(String sifra) {
        this.sifra = sifra;
    }

    @OneToMany(cascade=CascadeType.REFRESH, fetch=FetchType.LAZY, mappedBy="bolnica")
    public List<Lijecnik> getLijecnici() {
        return lijecnici;
    }

    public void setLijecnici(List<Lijecnik> lijecnici) {
        this.lijecnici = lijecnici;
    }

    @Override
    public String toString()
    {
    	return this.naziv.concat(", ").concat(this.adresa);
    }
    
    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Bolnica other = (Bolnica) obj;
        if ((this.sifra == null) ? (other.sifra != null) : !this.sifra.equals(other.sifra)) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 89 * hash + (this.sifra != null ? this.sifra.hashCode() : 0);
        return hash;
    }
    
}
